Object detection and recognition are difficult problems in the field of computer vision. Object detection involves determining the presence of one or more objects in an image of a scene. Image segmentation comprises identifying all image elements that are part of the same object in an image. Object recognition comprises assigning semantic labels to the detected objects. For example, to determine a class of objects that the object belongs to such as cars, people or buildings. Object recognition can also comprise assigning class instance labels to detected objects. For example, determining that a detected object is of a particular type of car. Object recognition may also be referred to as semantic segmentation.
There is a need to provide simple, accurate, fast and computationally inexpensive methods of object detection and recognition for many applications. For example, given a photograph or other image it is required to automatically partition it into semantically meaningful areas each labeled with a specific object class. In addition, there is a need to cope with both structured object classes such as people, cars, buildings and unstructured object classes such as sky, grass or water. When dealing with large collections of images and/or large numbers of object classes, efficiency of computation is a particular requirement.